# -*- coding: UTF-8 -*-
from tools.Request_General import BaseAPI
from pyLib.databaseManage import APP_DATABASE, SYS_DATABASE
from pyLib.LogManage import LOG


class SpaceServer(BaseAPI):
    """
    空间服务相关的接口
    """

    def element_import_log(self, log_id):
        """
        查询导入日志结果
        """
        payload = {"id": log_id}
        r = self.request_send(params=payload)
        return r

    def app_add(self, payload):
        """
        创建应用
        """
        r = self.request_send(json=payload)
        return r

    def app_page(self, params):
        """
        应用列表查询接口
        """
        r = self.request_send(params=params)
        return r

    def app_jdbc(self):
        """
        查询应用连接数据库
        """
        r = self.request_send()
        return r

    def recycle_bin(self, params):
        """
        应用放入回收站
        """
        r = self.request_send(params=params)
        return r

    def recycle_bin_back(self, params):
        """
        应用移出回收站
        """
        r = self.request_send(params=params)
        return r

    def remove_app(self, params, drop_table=False):
        """
        永久删除app
        :param params: 入参
        :param drop_table: 是否删除相关app表
        :return:
        """
        r = self.request_send(params=params)
        if drop_table:
            app_id = params.get("appId")
            APP_DATABASE.del_tables_for_app_id(app_id)
            SYS_DATABASE.execute_sql(f"DELETE FROM sp_app_info WHERE id='{app_id}' AND deleted=1")
            LOG.info(f"删除{app_id}应用信息")
        return r

    def module_register(self, payload):
        """
        组件注册
        """
        r = self.request_send(json=payload)
        return r

    def module_cancellation(self, params):
        """
        组件注销
        """
        r = self.request_send(params=params)
        return r

    def relation_all(self, params):
        """
        根据已注册组件ID查询已注册组件关联关系
        """
        r = self.request_send(params=params)
        return r

    def cancellation(self, params):
        """
        根据未注册组件ID查询未注册组件关联关系
        """
        r = self.request_send(params=params)
        return r

    def detail(self, params):
        """
        根据mouldId查询组件详细信息
        """
        r = self.request_send(params=params)
        return r

    def all_list(self):
        """
        查询所有组件列表
        """
        r = self.request_send()
        return r

    def app_all_list(self):
        """
        根据空间id查询所有app接口
        """
        r = self.request_send()
        return r

    def all_list_rec(self, par):
        """
        分页查询应用列表所有应用(含回收站信息)接口
        """
        r = self.request_send(params=par)
        return r

    def page_use_able(self, par):
        """
        查询未删除列表接口
        """
        r = self.request_send(params=par)
        return r

    def recycle_bin_page(self, par):
        """
        查询回收站应用列表接口
        """
        r = self.request_send(params=par)
        return r

    def space_init(self):
        """
        初始化空间表信息接口**
        """
        r = self.request_send()
        return r

    def quote_rel_reg(self, pay):
        """
        批量注册组件和组件依赖关系接口
        """
        r = self.request_send(json=pay)
        return r

    def detail_list(self, par):
        """
        根据(批量)moduleId查询组件(批量)详细信息(含服务名)接口
        """
        r = self.request_send(params=par)
        return r

    def quote_rel_add(self, pay):
        """
        保存组件创建时使用的默认组件接口
        """
        r = self.request_send(json=pay)
        return r

    def quote_rel_batch_add(self, pay):
        """
        保存组件创建时使用的默认组件批量接口
        """
        r = self.request_send(json=pay)
        return r

    def quote_rel_ser_name(self, par):
        """
        根据组件id和协议号查询默认创建的组件服务名接口(表module_relation_protocol 强制依赖协议 并且在当前的空间时注册过的)
        """
        r = self.request_send(params=par)
        return r

    def reg_list_usable(self):
        """
        查询已注册的可用组件列表（组）接口
        """
        r = self.request_send()
        return r

    def coercion_lack(self):
        """
        查询已注册的状态可用的强制关联关系正常的组件列表接口
        """
        r = self.request_send()
        return r

    def check_usable(self, par):
        """
        查询组件id查询组件在当前空间的状态是否可用接口
        """
        r = self.request_send(params=par)
        return r

    def check_usable_batch(self, par):
        """
        批量查询组件可用状态接口
        """
        r = self.request_send(params=par)
        return r

    def reg_status(self, par):
        """
        查询空间组件启用停用接口
        """
        r = self.request_send(params=par)
        return r

    def mod_status(self, pay):
        """
        空间组件启用停用接口
        """
        r = self.request_send(json=pay)
        return r

    def get_app_datasource(self, par):
        """
        获取应用DB信息接口
        """
        r = self.request_send(params=par)
        return r

    def by_space_id(self):
        """
        根据空间id查询所有应用信息接口
        """
        r = self.request_send()
        return r

    def group_add(self, pay):
        """
        新建用户组
        """
        r = self.request_send(json=pay)
        return r

    def group_page(self, par):
        """
        查询空间用户组信息(可包含关键字)
        """
        r = self.request_send(params=par)
        return r

    def group_query(self, par):
        """
        批量根据用户组id列表查询用户组信息
        """
        r = self.request_send(params=par)
        return r

    def group_update(self, pay):
        """
        根据用户组id更新用户状态及用户组
        """
        r = self.request_send(json=pay)
        return r

    def remove_group(self, par):
        """
        根据id从空间中移除用户组
        """
        r = self.request_send(params=par)
        return r

    def user_page(self, par):
        """
        查询当前空间用户信息（可包含关键字）
        """
        r = self.request_send(params=par)
        return r

    def user_query(self, par):
        """
        根据id查询单个用户信息
        """
        r = self.request_send(params=par)
        return r

    def user_remove(self, par):
        """
        根据id从空间中移除用户
        """
        r = self.request_send(params=par)
        return r

    def user_update(self, pay):
        """
        根据用户id更新用户状态及用户组
        """
        r = self.request_send(json=pay)
        return r

    def log_add(self, pay):
        """
        日志发送接口
        """
        r = self.request_send(json=pay)
        return r

    def log_list(self, pay):
        """
        日志查询接口
        """
        r = self.request_send(json=pay)
        return r

    def query_mod_name(self, par):
        """
        操作类型列表查询接口
        """
        r = self.request_send(params=par)
        return r

    def language_update(self, pay):
        """
        空间语言管理保存接口
        """
        r = self.request_send(json=pay)
        return r

    def language_man_list(self, par):
        """
        空间语言管理列表查询接口
        """
        r = self.request_send(params=par)
        return r

    def enable_language_list(self):
        """
        获取当前空间启用语言接口
        """
        r = self.request_send()
        return r

    def invite_user(self, pay):
        """
        用户邀请
        """
        r = self.request_send(json=pay)
        return r

    def activate_user(self, par):
        """
        发送激活邮件
        """
        r = self.request_send(params=par)
        return r

    def user_query_batch(self, par):
        """
        根据用户id列表批量查询用户信息
        """
        r = self.request_send(params=par)
        return r

    def app_list(self, pay):
        """
        应用列表查询接口
        """
        r = self.request_send(json=pay)
        return r

    def get_config_params(self):
        """查看服务使用配置参数列表"""
        r = self.request_send()
        return r

    def file_business_record(self, params):
        """文件记录分页查询接口"""
        r = self.request_send(params=params)
        return r

    def delete_download_record(self, params, payload):
        """删除下载记录(单个)"""
        r = self.request_send(params=params, json=payload)
        return r


if __name__ == '__main__':
    res = SpaceServer({
        'cookie': 'deepfos_token=12FED6CE6E2ECC450EE797916B6180981A896A449BC7C8024B295B8A0E74EE2B;deepfos_users=%7B%22color%22%3A%225%22%2C%22email%22%3A%22auto.sys%40proinnova.com.cn%22%2C%22invitationActivation%22%3Atrue%2C%22token%22%3A%2212FED6CE6E2ECC450EE797916B6180981A896A449BC7C8024B295B8A0E74EE2B%22%2C%22tokenKey%22%3A%22deepfos_token%22%2C%22type%22%3A1%2C%22userId%22%3A%22b40bee35-105e-407a-8404-b1b4eedac75e%22%2C%22username%22%3A%22auto.sys%22%7D;',
        'language': 'zh-cn', 'space': 'ahbrqy', 'enterprise-id': '4'}).all_list()
    print(res.json())
